package city.spring.modules.reception.controller;

import city.spring.modules.reception.dto.CheckInDTO;
import city.spring.modules.reception.dto.SaveCheckInDTO;
import city.spring.modules.reception.dto.SavePayMoneyDTO;
import city.spring.modules.reception.service.CheckInService;
import com.baomidou.mybatisplus.extension.api.ApiController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.text.ParseException;

/**
 * 入住登记
 *
 * @author HouKunLin
 * @date 2020/5/22 0022 11:46
 */
@RestController
@RequestMapping("/reception")
public class CheckInController extends ApiController {
    private final CheckInService checkInService;

    public CheckInController(CheckInService checkInService) {
        this.checkInService = checkInService;
    }

    /**
     * 入住登记请求数据
     *
     * @param dto 前端数据传输包装对象
     * @deprecated 该接口被废除，不直接一步完成入住流程
     */
    @PostMapping("check-in")
    @Deprecated
    public Object checkIn(@Validated @RequestBody CheckInDTO dto) {
        checkInService.checkIn(dto);
        return success(dto.getOldman());
    }

    /**
     * 保存老人信息（非入住接口，不直接完成入住，仅仅保存信息，等待后续的入院缴费操作）
     *
     * @param dto 前端传来的老人信息、入住记录信息、家属信息列表
     */
    @PostMapping("save-check-in")
    public Object saveInfo(@Validated @RequestBody SaveCheckInDTO dto) {
        checkInService.saveCheckIn(dto);
        return success(dto);
    }

    /**
     * 保存入院缴费信息
     *
     * @param dto 前端传来的护理信息、床位信息、固定费用信息列表
     * @return
     */
    @PostMapping("save-pay-money")
    public Object savePayMoney(@Validated @RequestBody SavePayMoneyDTO dto) throws ParseException {
        checkInService.savePayMoney(dto);
        return success(dto);
    }

}
